﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Variable
{
    public enum TypeTecnologyDocs
    {
        MINISTRING,
        LARGESTRING,
        DATE
    }
    /// <summary>
    /// СУЩНОСТЬ ПЕРЕМЕННАЯ
    /// </summary>
    public class Variable
    {
        // Закрываем конструктор от всех кроме VariablePool
        internal Variable()
        {
        }
        /// <summary>
        /// Имя переменной
        /// TODO: организовать проверку на содержимые символы
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// Описание переменной
        /// При выгрузке в XML будет записываться в комментарий, исходя из этого нужно проверять на наличие строки "-->"
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// Значение по умолчанию
        /// Может содержать любые значения
        /// </summary>
        public string Default { get; set; }
        /// <summary>
        /// Тип переменной для ТЕХНОЛОГИЧЕСКОГО ДОКУМЕНТА
        /// </summary>
        public TypeTecnologyDocs Type;
        /// <summary>
        /// Представление для формы
        /// Также применяется для представления в отображении ТЕХНОЛОГИЧЕСКОГО ДОКУМЕНТА
        /// </summary>
        public string ViewInForm;
        /// <summary>
        /// Преобразование в строку для вывода в файл VAR.XML
        /// Скорее всего не будет использоваться
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            if (Default == string.Empty)
                return "<var ifexists=\"yes\" name=\"" + this.Name + "\" type=\"string\"/>";
            else
                return "<var ifexists=\"yes\" name=\"" + this.Name + "\" type=\"string\">" + this.Default + "</var>\t<!-- " + this.Description + " -->";
        }
    }
    public class VariablePool
    {

    }
}
